#include "OtsInitHelper.h"

void OtsInitConfig(void)
{
    stc_ots_init_t stcOTSInit;

    (void)OTS_StructInit(&stcOTSInit);
    stcOTSInit.u16ClockSrc = OTS_CLK_XTAL;
	stcOTSInit.u16AutoOffEn = OTS_AUTO_OFF_ENABLE;

    /* Real XTAL frequency(MHz). */
    stcOTSInit.stcParaCond.u16ClockFreq = 25U;

    /* 1. Enable OTS peripheral clock. */
    FCG_Fcg3PeriphClockCmd(FCG3_PERIPH_OTS, ENABLE);

    /* 2. Initialize OTS. */
    (void)OTS_Init(&stcOTSInit);

	/* Enable LRC for OTS. */
	// 如果需要进行标定，则需要使用内部低速时钟。否则不用
    //(void)CLK_LrcCmd(ENABLE);

    OtsIrqConfig();


    OtsTriggerConfig();

}

void OtsIrqConfig(void)
{
    /* Enable the specified interrupts of OTS. */
    OTS_IntCmd(ENABLE);
}

void OtsTriggerConfig(void)
{
    // 启动AOS，使用EIRQ8，也就是RTC中断触发温度读取
    FCG_Fcg0PeriphClockCmd(FCG0_PERIPH_AOS, ENABLE);
    AOS_SetTriggerEventSrc(AOS_OTS, EVT_SRC_TMR2_1_CMP_B);
	;
}


__IO float32_t m_f32Temperature = 0.0;
void OTS_IrqCallback(void)
{
    m_f32Temperature = OTS_CalculateTemp();
	//ULOG_DEBUG("Temperature: %d\n", (int16_t)m_f32Temperature);

}
